Código
# Librerías necesarias
require(ggplot2)
require(tidyverse)
require(ggfortify)
require(plotly)
require(kableExtra)
require(vroom)
require(leaflet)
library(lubridate)Presentamos un ejemplo para XXX.

A continuación, se muestran algunos posibles análisis para datos de XXX.
# Librerías necesarias
require(ggplot2)
require(tidyverse)
require(ggfortify)
require(plotly)
require(kableExtra)
require(vroom)
require(leaflet)
library(lubridate)Los datos de sismos XXX.
Para lo que sigue, trabajamos con el dataset reducido sismos-arg.csv en el que se incluyen datos de sismos de diferente intensidad y magnitud en la región continental del país (excluyendo Tierra del Fuego) desde el 7 de enero de 2012, hasta el 18 de mayo de 2022.
El dataset sismos-arg.csv se encuentra acá. A continuación, se muestran 10 datos de dicho conjunto.
knitr::kable(datos[1:10,], caption = "Dataset reducido")| Fecha | Hora | Latitud | Longitud | Provincia | Percibido | Magnitud | Profundidad |
|---|---|---|---|---|---|---|---|
| 2022-05-18 | 13:09:56 | -31.820 | -67.040 | San Juan | FALSE | 3.0 | 134 |
| 2022-05-18 | 10:18:34 | -24.216 | -67.139 | Salta | FALSE | 3.2 | 185 |
| 2022-05-18 | 09:40:09 | -31.262 | -68.708 | San Juan | FALSE | 3.3 | 104 |
| 2022-05-18 | 09:25:43 | -32.521 | -70.085 | San Juan | FALSE | 2.7 | 112 |
| 2022-05-18 | 08:45:59 | -28.192 | -67.376 | Catamarca | FALSE | 2.7 | 142 |
| 2022-05-18 | 08:42:33 | -32.043 | -70.030 | San Juan | FALSE | 2.7 | 114 |
| 2022-05-17 | 23:22:48 | -23.442 | -66.846 | Jujuy | FALSE | 3.6 | 210 |
| 2022-05-17 | 21:21:18 | -23.503 | -66.831 | Jujuy | FALSE | 3.6 | 210 |
| 2022-05-17 | 17:17:58 | -22.794 | -66.228 | Jujuy | FALSE | 4.0 | 273 |
| 2022-05-17 | 14:46:04 | -31.505 | -68.640 | San Juan | FALSE | 2.7 | 103 |
Visualización de sismos percibidos y no percibidos.
sismos_arg <- datos
pal1 <-
colorNumeric(palette = c("deeppink2", "deeppink4"),
domain = sismos_arg$Profundidad)
pal2 <-
colorNumeric(palette = c("dodgerblue2", "dodgerblue4"),
domain = sismos_arg$Profundidad)
mapa_arg <- sismos_arg %>%
leaflet(options = leafletOptions(attributionControl = FALSE)) %>%
addTiles(group = "OSM (default)") %>%
addProviderTiles("OpenTopoMap",
group = "Topográfico",
options = providerTileOptions(opacity = 0.5)) %>%
addCircleMarkers(
data = sismos_arg %>%
filter(Percibido == FALSE),
lng = ~ Longitud,
lat = ~ Latitud,
fillOpacity = 0.1,
radius = ~ Magnitud,
color = ~ pal2(Profundidad),
stroke = FALSE,
group = "Sismos no percibidos"
) %>%
addCircleMarkers(
data = sismos_arg %>%
filter(Percibido == TRUE),
lng = ~ Longitud,
lat = ~ Latitud,
fillOpacity = 0.1,
radius = ~ Magnitud,
color = ~ pal1(Profundidad),
stroke = FALSE,
group = "Sismos percibidos"
) %>%
addLayersControl(
baseGroups = c("OSM (default)", "Topográfico"),
overlayGroups = c("Sismos no percibidos", "Sismos percibidos"),
options = layersControlOptions(collapsed = TRUE)
)
mapa_argVisualización de sismos, según magnitud por top de provincias con sismos.
top <-
c("San Juan",
"Salta",
"Jujuy",
"La Rioja",
"Mendoza",
"Catamarca",
"Córdoba")
pal3 <-
colorNumeric(
palette = c("gold", "sienna1", "firebrick", "darkred", "orangered4"),
domain = sismos_arg$Magnitud
)
mapa_arg_top <- sismos_arg %>%
leaflet(options = leafletOptions(attributionControl = FALSE)) %>%
addTiles(group = "OSM (default)") %>%
addProviderTiles("OpenTopoMap",
group = "Topográfico",
options = providerTileOptions(opacity = 0.5)) %>%
addCircles(
data = sismos_arg %>%
filter(Provincia == top[1]),
lng = ~ Longitud,
lat = ~ Latitud,
fillOpacity = 1,
radius = ~ Magnitud * 1000,
color = ~ pal3(Magnitud),
stroke = FALSE,
group = top[1]
) %>%
addCircles(
data = sismos_arg %>%
filter(Provincia == top[2]),
lng = ~ Longitud,
lat = ~ Latitud,
fillOpacity = 1,
radius = ~ Magnitud * 1000,
color = ~ pal3(Magnitud),
stroke = FALSE,
group = top[2]
) %>%
addCircles(
data = sismos_arg %>%
filter(Provincia == top[3]),
lng = ~ Longitud,
lat = ~ Latitud,
fillOpacity = 1,
radius = ~ Magnitud * 1000,
color = ~ pal3(Magnitud),
stroke = FALSE,
group = top[3]
) %>%
addCircles(
data = sismos_arg %>%
filter(Provincia == top[4]),
lng = ~ Longitud,
lat = ~ Latitud,
fillOpacity = 1,
radius = ~ Magnitud * 1000,
color = ~ pal3(Magnitud),
stroke = FALSE,
group = top[4]
) %>%
addCircles(
data = sismos_arg %>%
filter(Provincia == top[5]),
lng = ~ Longitud,
lat = ~ Latitud,
fillOpacity = 1,
radius = ~ Magnitud * 1000,
color = ~ pal3(Magnitud),
stroke = FALSE,
group = top[5]
) %>%
addCircles(
data = sismos_arg %>%
filter(Provincia == top[6]),
lng = ~ Longitud,
lat = ~ Latitud,
fillOpacity = 1,
radius = ~ Magnitud * 1000,
color = ~ pal3(Magnitud),
stroke = FALSE,
group = top[6]
) %>%
addCircles(
data = sismos_arg %>%
filter(Provincia == top[7]),
lng = ~ Longitud,
lat = ~ Latitud,
fillOpacity = 1,
radius = ~ Magnitud * 1000,
color = ~ pal3(Magnitud),
stroke = FALSE,
group = top[7]
) %>%
addLayersControl(
baseGroups = c("OSM (default)", "Topográfico"),
overlayGroups = top,
options = layersControlOptions(collapsed = TRUE)
)
mapa_arg_topknitr::kable(sismos_prov, caption = "Resumen por provincias")| Provincia | n | nperc | Magmed | Profmed |
|---|---|---|---|---|
| Buenos Aires | 7 | 5 | 3.7 | 31 |
| Catamarca | 3317 | 109 | 2.8 | 139 |
| Chaco | 3 | 0 | 3.3 | 231 |
| Chubut | 1 | 0 | 3.8 | 169 |
| Corrientes | 2 | 0 | 3.7 | 267 |
| Córdoba | 1145 | 313 | 2.8 | 21 |
| Entre Ríos | 1 | 0 | 3.8 | 32 |
| Formosa | 3 | 0 | 3.8 | 342 |
| Jujuy | 5270 | 64 | 3.2 | 223 |
| La Pampa | 5 | 4 | 3.6 | 22 |
| La Rioja | 4616 | 166 | 2.8 | 114 |
| Mendoza | 4319 | 303 | 2.7 | 31 |
| Neuquén | 231 | 66 | 3.0 | 8 |
| Río Negro | 1 | 0 | 2.9 | 98 |
| Salta | 5781 | 61 | 3.2 | 195 |
| San Juan | 29920 | 619 | 2.7 | 106 |
| San Luis | 568 | 69 | 2.8 | 22 |
| Santa Cruz | 46 | 22 | 3.0 | 14 |
| Santiago del Estero | 255 | 59 | 3.2 | 30 |
| Tucumán | 326 | 46 | 2.8 | 27 |
knitr::kable(sismos_prov_porc, caption = "Porcentaje de sismos percibidos para casos de más de 1000 eventos")| Provincia | pperc |
|---|---|
| Catamarca | 3.286102 |
| Córdoba | 27.336244 |
| Jujuy | 1.214421 |
| La Rioja | 3.596187 |
| Mendoza | 7.015513 |
| Salta | 1.055181 |
| San Juan | 2.068850 |

Percibidos
A continuación, se detallan aspectos de los datasets que conformaron el dataset reducido para el desarrollo del ejemplo, a la vez que se incluyen las fuentes de los datos y el código utilizado para pre-procesarlo con la sintaxis de tidyverse. De esta forma, puede fácilmente replicarse y/o adaptarse si así se lo desea.
También se incluye el enlace de descarga al dataset reducido, sismos-arg.csv, con el que se desarrolló el ejemplo.
Los datos de este ejemplo corresponden a XXX.
# importo datos de sismos
sismos <- vroom("./fuente/04_visualizacion/sismos_all.csv")
sismos$Fecha <- as.Date(sismos$Fecha, tryFormats = c("%d/%m/%Y"))
# info de casi 10 años
min(sismos$Fecha)
max(sismos$Fecha)
# dummy para los percibidos
sismos <- sismos %>%
mutate(
Percibido = !is.na(Intensidad),
Magnitud = Magn.,
Profundidad = Profund.
)
# quitamos las unidades km. en intensidad
sismos$Profundidad <- as.numeric(str_sub(sismos$Profundidad, 1,-4))
# sismos en Argentina Continental (saco TdF porque se corre mucho el mapa)
sismos_arg <- sismos %>%
filter(
Provincia != "OCEANO PACIFICO",
Provincia != "CHILE",
Provincia != "MAULE - CHILE",
Provincia != "REPÚBLICA DE CHILE",
Provincia != "REPUBLICA DE CHILE",
Provincia != "SUR DE CHILE",
Provincia != "TFAIAS",
Provincia != "NORTH ISLAND, NEW ZEALAND",
Provincia != "REGION NOT FOUND.",
Provincia != "PERU",
Provincia != "PENINSULA ANTARTICA",
Provincia != "PASAJE DE DRAKE",
Provincia != "NORTHWEST OF KURIL ISLANDS",
Provincia != "NTARTIDA",
Provincia != "MAR DE SCOTIA",
Provincia != "MAR ARGENTINO",
Provincia != "ISLAS SANDWICH DEL SUR",
Provincia != "ISLAS SANDWICH",
Provincia != "ISLAS SHETLAND",
Provincia != "ISLAS SHETLAND DEL SUR",
Provincia != "ESTRECHO DE DRAKE",
Provincia != "FILIPINAS",
Provincia != "I.SANDWICH DEL SUR",
Provincia != "SECTOR ANTARTICO",
Provincia != "IS. SHETLAND DEL SUR",
Provincia != "ISLAS GEORGIA DEL SUR",
Provincia != "ISLAS GEORGIAS DEL SUR",
Provincia != "ISLAS GEORGIAS y SANDWICH DEL SUR",
Provincia != "ISLAS GIORGIA Y SANDWICH DEL SUR",
Provincia != "ISLAS ORCADAS",
Provincia != "ISLAS ORCADAS DEL SUR",
Provincia != "ATLANTICO SUR",
Provincia != "BOLIVIA",
Provincia != "PARAGUAY",
Provincia != "LIM. ARG-CHILE",
Provincia != "LIM.ARGENTINA-CHILE",
Provincia != "LIM.CHILE-ARGENTINA",
Provincia != "LIMITE ARGENTINA-CHILE",
Provincia != "LIMITE ARGENTINA CHILE",
Provincia != "TIERRA DEL FUEGO",
Provincia != "ISLAS GEORGIAS Y SANDWICH DEL SUR"
)
table(sismos_arg$Provincia)
# recodifico provincias
sismos_arg <- sismos_arg %>%
mutate(
Provincia = recode(
Provincia,
"BUENOS AIRES" = "Buenos Aires",
"CATAMARCA" = "Catamarca",
"CATAMARCA}" = "Catamarca",
"CATAMARCA LIM. TUCUMAN" = "Catamarca",
"CATAMARCA(LIM.CON TUCUMAN)" = "Catamarca",
"CATAMARCA(LIM.CON TUCUMÁN)" = "Catamarca",
"CHACO" = "Chaco",
"CHUBUT" = "Chubut",
"CORDOBA" = "Córdoba",
"CORDOBA(LIM.CON SAN LUIS)" = "Córdoba",
"CORDOBA LIM. SAN LUIS" = "Córdoba",
"CORRIENTES" = "Corrientes",
"ENTRE RIOS" = "Entre Ríos",
"FORMOSA" = "Formosa",
"jujuy" = "Jujuy",
"JUJUY" = "Jujuy",
"JUJUY(LIM.CON SALTA)" = "Jujuy",
"LA PAMPA" = "La Pampa",
"LA RIOJA" = "La Rioja",
"LA RIOJA LIM. SAN JUAN" = "La Rioja",
"LA RIOJA(LIM.CON CATAMARCA)" = "La Rioja",
"LA RIOJA(LIM.CON SAN JUAN)" = "La Rioja",
"LIM. CATAMARCA-TUCUMAN" = "Catamarca",
"LIM. LA RIOJA - SAN JUAN" = "La Rioja",
"LIMITE CATAMARCA - TUCUMAN" = "Catamarca",
"LIMITE CORDOBA - SAN LUIS" = "Córdoba",
"LIMITE JUJUY-SALTA" = "Jujuy",
"LIMITE JUJUY - SALTA" = "Jujuy",
"LIMITE LA RIOJA-CATAMARCA" = "La Rioja",
"LIMITE MENDOZA-SAN JUAN" = "Mendoza",
"LIMITE MENDOZA - SAN JUAN" = "Mendoza",
"LIMITE SALTA-JUJUY" = "Salta",
"LIMITE SALTA - CATAMARCA" = "Salta",
"LIMITE SALTA - JUJUY" = "Salta",
"LIMITE SAN JUAN-MENDOZA" = "San Juan",
"LIMITE SAN JUAN - LA RIOJA" = "San Juan",
"LIMITE SAN JUAN - MENDOZA" = "San Juan",
"LIMITE SAN JUAN SAN LUIS" = "San Juan",
"LIMITE SAN LUIS-SAN JUAN" = "San Luis",
"LIMITE TUCUMAN - CATAMARCA" = "Tucumán",
"MENDOZa" = "Mendoza",
"MENDOZA" = "Mendoza",
"MENDOZA(LIM.CON SAN JUAN)" = "Mendoza",
"MENDOZA}" = "Mendoza",
"MMENDOZA" = "Mendoza",
"NEUQUEN" = "Neuquén",
"RIO NEGRO" = "Río Negro",
"SALTA" = "Salta",
"SALTA (limite con Jujuy)" = "Salta",
"SALTA LIM. JUJUY" = "Salta",
"SALTA(LIM.CON JUJUY)" = "Salta",
"SALTA(LIM.CON TUCUMAN)" = "Salta",
"SAN JUAN LIM. MENDOZA" = "San Juan",
"SAN JUAN (LIM.CON SAN LUIS)" = "San Juan",
"SAN JUAN LIM. LA RIOJA" = "San Juan",
"SAN JUAN LIM.CON SAN LUIS" = "San Juan",
"SAN JUAN LIM.CON MENDOZA" = "San Juan",
"SAN JUAN LIM. MENDOZA" = "San Juan",
"SAN JUAN(LIM.ARG-CHI)" = "San Juan",
"SAN JUAN(LIM.CON LA RIOJA)" = "San Juan",
"LIMITE SAN JUAN - SAN LUIS" = "San Juan",
"LIMITE SAN JUAN LA RIOJA" = "San Juan",
"SAN JUAN(LIM.CON MENDOZA)" = "San Juan",
"SAN JUA" = "San Juan",
"SAn JUAN" = "San Juan",
"SAN JUAN" = "San Juan",
"LIMITE SAN JUAN MENDOZA" = "San Juan",
"SAN JUAN(LIM.CON SAN LUIS)" = "San Juan",
"SAN LUIS" = "San Luis",
"SANTA CRUZ" = "Santa Cruz",
"SANTIAGO DEL ESTERO" = "Santiago del Estero",
"SGO.DEL ESTERO LIM.CON CATAMARCA" = "Santiago del Estero",
"TUCUMAN" = "Tucumán",
"TUCUMÁN" = "Tucumán",
"TUCUMAN LIM. SALTA" = "Tucumán",
"TUCUMAN(LIM.CON CATAMARCA)" = "Tucumán"
)
)
sort(-table(sismos_arg$Provincia))
# Elijo variables
sismos_arg <- sismos_arg %>%
select(c(2, 3, 4, 5, 9, 10, 11, 12))sismos-arg.csvPara reducir los datos al estudio de interés, se crea un dataset reducido, sismos-arg.csv, a partir de los datos de scrappeados, en el que se dispone de las siguientes variables.
Fecha: fecha, en el formato año-mes-día.Hora: hora, en el formato hora-minuto-segundo.Latitud: latitud del evento registrado.Longitud: latitud del evento registrado.Provincia: nombre de la provincia del evento registrado.Percibido: TRUE si la magnitud fue percibida, FALSE si no lo fue.Magnitud: magnitud del sismo en la escala de Richter.Profundidad: profundidad (km) registrada del sismo.Las librerías usadas para el desarrollo de este ejemplo, así como la información de la sesión de R, se muestran en el código que sigue.
require(ggplot2)
require(tidyverse)
require(ggfortify)
require(plotly)
require(kableExtra)
require(vroom)
require(leaflet)
library(lubridate)sessionInfo()R version 4.2.3 (2023-03-15 ucrt)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 22621)
Matrix products: default
locale:
[1] LC_COLLATE=Spanish_Argentina.utf8 LC_CTYPE=Spanish_Argentina.utf8
[3] LC_MONETARY=Spanish_Argentina.utf8 LC_NUMERIC=C
[5] LC_TIME=Spanish_Argentina.utf8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] leaflet_2.1.2 vroom_1.6.1 kableExtra_1.3.4 plotly_4.10.1
[5] ggfortify_0.4.16 lubridate_1.9.2 forcats_1.0.0 stringr_1.5.0
[9] dplyr_1.1.2 purrr_1.0.1 readr_2.1.4 tidyr_1.3.0
[13] tibble_3.2.1 tidyverse_2.0.0 ggplot2_3.4.2
loaded via a namespace (and not attached):
[1] svglite_2.1.1 leaflet.providers_1.9.0 digest_0.6.31
[4] utf8_1.2.3 R6_2.5.1 evaluate_0.20
[7] httr_1.4.5 highr_0.10 pillar_1.9.0
[10] rlang_1.1.0 lazyeval_0.2.2 rstudioapi_0.14
[13] data.table_1.14.8 rmarkdown_2.21 labeling_0.4.2
[16] webshot_0.5.4 htmlwidgets_1.6.2 bit_4.0.5
[19] munsell_0.5.0 compiler_4.2.3 xfun_0.39
[22] pkgconfig_2.0.3 systemfonts_1.0.4 htmltools_0.5.5
[25] tidyselect_1.2.0 gridExtra_2.3 fansi_1.0.4
[28] viridisLite_0.4.2 crayon_1.5.2 tzdb_0.3.0
[31] withr_2.5.0 grid_4.2.3 jsonlite_1.8.4
[34] gtable_0.3.3 lifecycle_1.0.3 magrittr_2.0.3
[37] scales_1.2.1 cli_3.6.1 stringi_1.7.12
[40] farver_2.1.1 xml2_1.3.3 ellipsis_0.3.2
[43] generics_0.1.3 vctrs_0.6.1 tools_4.2.3
[46] bit64_4.0.5 glue_1.6.2 hms_1.1.3
[49] crosstalk_1.2.0 parallel_4.2.3 fastmap_1.1.1
[52] yaml_2.3.7 timechange_0.2.0 colorspace_2.1-0
[55] rvest_1.0.3 knitr_1.42